<html>
<head><meta charset="utf-8"><title>sharing knowledge · t-compiler/cargo-bisect-rustc · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/index.html">t-compiler/cargo-bisect-rustc</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html">sharing knowledge</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="188122775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122775">(Feb 13 2020 at 16:25)</a>:</h4>
<p>I was telling <span class="user-mention" data-user-id="116122">@simulacrum</span> that may be a good idea if someone briefly explain the code and decisions to the rest</p>



<a name="188122813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122813">(Feb 13 2020 at 16:25)</a>:</h4>
<p>You had some list of questions? That's probably a good start</p>



<a name="188122827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122827">(Feb 13 2020 at 16:25)</a>:</h4>
<p>my main motivation for this is that I've got some questions about the tool that the only way for me to answer would be to dive into the tool</p>



<a name="188122931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122931">(Feb 13 2020 at 16:26)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> anyway, what I was saying is ... if you don't have time don't worry, the tool is not hard, I can totally invest time and try to explain to the people that needs to know about it</p>



<a name="188122972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122972">(Feb 13 2020 at 16:26)</a>:</h4>
<p>If folks want to throw questions into this thread I can try and spend some time answering async when I have a few minutes (e.g. waiting for the compiler); I don't know that I have a larger block of time that I can dedicate</p>



<a name="188122995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188122995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188122995">(Feb 13 2020 at 16:27)</a>:</h4>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="188123039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188123039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188123039">(Feb 13 2020 at 16:27)</a>:</h4>
<p>my end goal with this is to start building a team of maintainers for the tool with myself included :)</p>



<a name="188123092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188123092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188123092">(Feb 13 2020 at 16:28)</a>:</h4>
<p>but right now I can't answer certain questions like <span class="user-mention" data-user-id="116113">@lqd</span>'s one without just diving and investigating the whole thing</p>



<a name="188125772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188125772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188125772">(Feb 13 2020 at 16:54)</a>:</h4>
<p>Is it possible to explain the <em>nightly</em> bisect algorithm?  It looks like there is an initial stage of testing to identify the ~ first good nightly with jump values that depend upon the duration of the full requested test range?  And then that good to regressed range is passed to the <code>least_satisfying</code> routine which, to someone without extensive algo background, looks binary search'ish?  And this stage 2 search hones in on the commit regression point once the nightly regression is identified?</p>



<a name="188174629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188174629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188174629">(Feb 14 2020 at 03:13)</a>:</h4>
<p>So the nightly algorithm, roughly proceeds like this:</p>
<p>First, we select a start and end date. Perhaps confusingly, these are laid out over time -- i.e., end is closest to today. The precise algorithm is a bit pulled together -- mostly "tries to work" no matter what options are given.</p>
<p>Now we try to find the baseline nightly -- this is the "left edge" that we're going to narrow down later. To do so, we start at either <code>--start</code> or <code>--end</code> or today/installed nightly (this seems like a really odd list, to be honest, and I suspect there's bugs here) and then search backwards from that date in increasing jumps depending on how far we've jumped so far.</p>
<p>Overall this just is a complicated looking geometric(ish?) search.</p>
<p>Once we have a baseline, we narrow the other end towards us with the "binary" search -- as with all binary searches, this is not going to work if the underlying function isn't sorted (in our case monotonic from baseline -&gt; regressed).</p>
<p>The slight complication is that it looks like there's some custom code in the least_satisfying function that tries to skip over "unknown" results (e.g., if you land on a nightly that's just broken for other reasons). I don't remember that at all, so can't clarify more here :)</p>
<p>and that's pretty much it for the nightly thing</p>



<a name="188174676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188174676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188174676">(Feb 14 2020 at 03:14)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> tbh, I think "why do we do X?" are probably better questions at this point than "how does X work?" -- the code itself is pretty far out of cache, but (e.g.) algorithmic choices I probably remember better</p>



<a name="188176607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188176607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188176607">(Feb 14 2020 at 04:07)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>  Tyvm for the detailed explanation!</p>



<a name="188176800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188176800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188176800">(Feb 14 2020 at 04:11)</a>:</h4>
<blockquote>
<p>(this seems like a really odd list, to be honest, and I suspect there's bugs here)</p>
</blockquote>
<p>I am seeing cases of duplication at the initial round of checks to confirm that the regression does not occur at the start end of the tests.  See <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/Duplicate.20start.20date.20nightly.20pulls.20.2B.20tests" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/Duplicate.20start.20date.20nightly.20pulls.20.2B.20tests">https://rust-lang.zulipchat.com/#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/Duplicate.20start.20date.20nightly.20pulls.20.2B.20tests</a>.  The same nightly is tested twice when there is no regression identified, once in <code>main.rs</code> and once in <code>least_satisfying.rs</code>.</p>



<a name="188201811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188201811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188201811">(Feb 14 2020 at 12:35)</a>:</h4>
<p>yes, there's an open issue or PR</p>



<a name="188212010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212010">(Feb 14 2020 at 14:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> this is a great start, I'd now encourage everyone to ask questions like why do we do X</p>



<a name="188212272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212272">(Feb 14 2020 at 14:50)</a>:</h4>
<p>so one thing that I have seen and I'm not sure what we are doing is ... the way we install/remove installations</p>



<a name="188212298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212298">(Feb 14 2020 at 14:50)</a>:</h4>
<p>when would you find something installed in your toolchain?</p>



<a name="188212312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212312">(Feb 14 2020 at 14:50)</a>:</h4>
<p>when would you find things locally?</p>



<a name="188212324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212324">(Feb 14 2020 at 14:50)</a>:</h4>
<p>why are local things not removed?</p>



<a name="188212369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212369">(Feb 14 2020 at 14:51)</a>:</h4>
<p>what's the difference with --preserve given that things end anyway around in some cases</p>



<a name="188212391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212391">(Feb 14 2020 at 14:51)</a>:</h4>
<p>I don't know in which cases things are not removed but noticed that something like that happens from time to time</p>



<a name="188212481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188212481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188212481">(Feb 14 2020 at 14:52)</a>:</h4>
<p>and also have seen as someone noticed, cargo-bisect-rustc installing the same nightly twice and things like that</p>



<a name="188213402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188213402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188213402">(Feb 14 2020 at 15:02)</a>:</h4>
<p>The design that currently exists is basically let's install everything always - I'm not sure we ever try to not reinstall things etc. By default we try to clean up eagerly to avoid leaving gigabytes of data aroun</p>



<a name="188214846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188214846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188214846">(Feb 14 2020 at 15:18)</a>:</h4>
<p>Open to refactoring much of what is in <code>main.rs</code> into a library &amp; adding tests?  This would allow us to explore expected behavior in detail.  I have time to commit to this.</p>



<a name="188215844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188215844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188215844">(Feb 14 2020 at 15:29)</a>:</h4>
<p>I likely don't have time to review, so I'll leave that up to <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span></p>



<a name="188228906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188228906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188228906">(Feb 14 2020 at 17:51)</a>:</h4>
<blockquote>
<p>refactoring much of what is in <a href="http://main.rs" target="_blank" title="http://main.rs">main.rs</a> into a library &amp; adding tests</p>
</blockquote>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> interested?</p>



<a name="188292673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188292673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188292673">(Feb 15 2020 at 18:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="262810">Chris Simpkins</span> <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906">said</a>:</p>
<blockquote>
<blockquote>
<p>refactoring much of what is in <a href="http://main.rs" target="_blank" title="http://main.rs">main.rs</a> into a library &amp; adding tests</p>
</blockquote>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> interested?</p>
</blockquote>
<p>yes, definitely</p>



<a name="188305032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188305032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188305032">(Feb 16 2020 at 00:26)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188292673" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188292673">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="262810">Chris Simpkins</span> <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906">said</a>:</p>
<blockquote>
<blockquote>
<p>refactoring much of what is in <a href="http://main.rs" target="_blank" title="http://main.rs">main.rs</a> into a library &amp; adding tests</p>
</blockquote>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> interested?</p>
</blockquote>
<p>yes, definitely</p>
</blockquote>
<p>Sounds good. Let me know how it will work best to collaborate on it.  I would be happy to take the first shot at the library refactor or take on some part of it.  The part that I understand the best at this point is the nightly testing approach, but I am fine working on any of it.  I should have time later this week.</p>



<a name="188836946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing%20knowledge/near/188836946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Chris Simpkins <a href="https://rust-lang.github.io/zulip_archive/stream/217417-t-compiler/cargo-bisect-rustc/topic/sharing.20knowledge.html#188836946">(Feb 22 2020 at 23:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188292673" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188292673">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="262810">Chris Simpkins</span> <a href="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906" title="#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc/topic/sharing.20knowledge/near/188228906">said</a>:</p>
<blockquote>
<blockquote>
<p>refactoring much of what is in <a href="http://main.rs" target="_blank" title="http://main.rs">main.rs</a> into a library &amp; adding tests</p>
</blockquote>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> interested?</p>
</blockquote>
<p>yes, definitely</p>
</blockquote>
<p><a href="https://github.com/rust-lang/cargo-bisect-rustc/pull/58" target="_blank" title="https://github.com/rust-lang/cargo-bisect-rustc/pull/58">https://github.com/rust-lang/cargo-bisect-rustc/pull/58</a> refactors all of the custom errors into a new module and broadens error handling across all sources.  This eliminates nearly all of the current panic macros and my goal is to eliminate all of them so that users receive non-zero exit status codes with stderr error string reporting  rather than a panic.  This will resolve two open issues about panics during testing.</p>
<p>I could use input on how to address the error handling through the <code>least_satisfying</code> closure if anyone has thoughts (lines indicated in the OP of the PR).  Errors during tests in the <code>least_satisfying</code> function will still panic at this stage.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>